package com.example.palette.start;

import android.content.Context;
import android.os.Process;

public class StartTaskRunnable implements Runnable{
    private StartTaskManager startTaskManager;
    private IStartTask startTask;
    private Context context;

    public StartTaskRunnable(Context context,IStartTask startTask,StartTaskManager startTaskManager) {
        this.startTaskManager = startTaskManager;
        this.startTask = startTask;
        this.context = context;
    }

    @Override
    public void run() {
        Process.setThreadPriority(startTask.priority());
        startTask.toWait();
        Object o = startTask.execute(context);
        StartTaskCacher.getInstance().save(startTask.getClass(),new StartTaskResult(o));
        startTaskManager.notifyChilds(startTask);
    }
}
